define(function (require) {
    var Base = require('common/base/main');
    var utils = require('common/utils/home');
    var Mask = require('common/mask');
    var mask = new Mask();

    return Base.extend({
        initialize: function (params) {
            var _this = this;
            Base.prototype.initialize.apply(this, [params]);
            _this.initCateOverlay();
            _this.initCommon();
        },
        initCommon: function () {
            this._bindAddCart();
        },
        //添加到购物车
        _bindAddCart: function () {
            var _this = this;
            $('.J_add_cart').unbind('click').bind('click', function () {
                var id = $(this).data('id');
                _this.api({
                    m: 'cart',
                    a: 'add',
                    items: [{item_id: id, num: '1'}]
                }, function (resp) {
                    mask.success(resp.info);
                });
            });
        },
        //导航菜单
        initCateOverlay: function () {
            if (_global.m == 'index') {
                function _hide($this) {
                    $('.J_overlay .right', $this).hide();
                    $('.J_overlay', $this).width($('.J_overlay .left', $this).width());
                }

                _hide($('.J_all_cate'));
                $('.J_overlay').show();
                $('.J_all_cate').hover(function () {
                    $('.J_overlay .right', $(this)).show();
                    $('.J_overlay', $(this)).width(702);
                }, function () {
                    _hide($(this));
                });
            } else {
                $('.J_all_cate').hover(function () {
                    $('.J_overlay', $(this)).show();
                }, function () {
                    $('.J_overlay', $(this)).hide();
                });
            }
            $('.J_all_cate .J_overlay .left a').mouseover(function () {
                var id = $(this).data('id');
                $(this).addClass('hover').siblings().removeClass('hover');
                $('.J_sub_cate[data-id=' + id + ']').show().siblings().hide();
            });
        },
        /*
         api请求封装方法
         */
        api: function (params, callback) {
            var api, data;
            if (_.empty(params.m) || _.empty(params.a)) {
                alert("/home/common/main方法api()参数m、a必传!");
                return;
            }
            api = _.sprintf('/api/%s/%s', params.m, params.a);
            data = _.json_encode(_.omit(params, 'm', 'a'));
            utils.ajaxPost({api: api, data: data}, callback);
        }
    });
});